<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>人生课题 | zapqwe block</title><meta name="author" content="laptony"><meta name="copyright" content="laptony"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="拥抱美好生活，知行合一">
<meta property="og:type" content="article">
<meta property="og:title" content="人生课题">
<meta property="og:url" content="https://sswd123.gitee.io/posts/22757/index.html">
<meta property="og:site_name" content="zapqwe block">
<meta property="og:description" content="拥抱美好生活，知行合一">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/9.webp">
<meta property="article:published_time" content="2023-01-04T12:58:00.000Z">
<meta property="article:modified_time" content="2023-01-20T09:36:30.922Z">
<meta property="article:author" content="laptony">
<meta property="article:tag" content="生活，旅行，思考，代码，博客">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/9.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://sswd123.gitee.io/posts/22757/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//fonts.googleapis.com" crossorigin=""/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium+Web&amp;display=swap" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: {"path":"/search.xml","languages":{"hits_empty":"找不到您查询的内容：${query}"}},
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '天',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: undefined,
  source: {
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '人生课题',
  isPost: true,
  isHome: false,
  isHighlightShrink: false,
  isToc: true,
  postUpdate: '2023-01-20 17:36:30'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><!-- -音乐--><div class="aplayer" data-id="7455077979" data-server="tencent" data-type="playlist" data-fixed="true" data-listFolded="false" data-order="random" data-preload="none"></div><link rel="stylesheet" href="https://cdn.bootcss.com/aplayer/1.10.1/APlayer.min.css"><script src="https://cdn.bootcss.com/aplayer/1.10.1/APlayer.min.js"></script><script src="https://cdn.jsdelivr.net/npm/meting@1.2.0/dist/Meting.min.js"></script><link rel="stylesheet" href="/css/font.css"><!-- hexo injector head_end start --><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Zfour/Butterfly-double-row-display@1.00/cardlistpost.min.css"/>
<style>#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags:before {content:"\A";
  white-space: pre;}#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags > .article-meta__separator{display:none}</style>
<!-- hexo injector head_end end --><meta name="generator" content="Hexo 6.3.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><script>const preloader = {
  endLoading: () => {
    document.body.style.overflow = 'auto';
    document.getElementById('loading-box').classList.add("loaded")
  },
  initLoading: () => {
    document.body.style.overflow = '';
    document.getElementById('loading-box').classList.remove("loaded")

  }
}
window.addEventListener('load',()=> { preloader.endLoading() })

if (true) {
  document.addEventListener('pjax:send', () => { preloader.initLoading() })
  document.addEventListener('pjax:complete', () => { preloader.endLoading() })
}</script><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/11.gif" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">12</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">9</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">3</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-homef"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/photos/"><i class="fa-fw fas fa-camera"></i><span> 图库</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li></ul></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url('https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/4.png')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">zapqwe block</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-homef"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/photos/"><i class="fa-fw fas fa-camera"></i><span> 图库</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li></ul></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="post-info"><h1 class="post-title">人生课题</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-01-04T12:58:00.000Z" title="发表于 2023-01-04 20:58:00">2023-01-04</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-01-20T09:36:30.922Z" title="更新于 2023-01-20 17:36:30">2023-01-20</time></span><span class="post-meta-categories"><span class="post-meta-separator">|</span><i class="fas fa-inbox fa-fw post-meta-icon"></i><a class="post-meta-categories" href="/categories/%E9%9A%8F%E7%AC%94/">随笔</a></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-wordcount"><i class="far fa-clock fa-fw post-meta-icon"></i><span class="post-meta-label">阅读时长:</span><span>1分钟</span></span><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title="人生课题"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"><i class="fa-solid fa-spinner fa-spin"></i></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉, 这个密码看着不太对, 请再试试" data-whm="OOPS, these decrypted content may changed, but you can still have a look.">
  <script id="hbeData" type="hbeData" data-hmacdigest="7ba94585e762ed5f0d6edbb907d3baa6c3e23e6ac59d77ff7a0c3a56939cd5d7">caa0813d8912639e9142cf32d90cc6ed24f62825523cfddfe7c862dd9c27ea283a533d76b2a6831760cdd52af9cd6c28316a5e68b04a63f8ef063a0d212eda79da1670ff243ce03a977bd1fcbdd9e98becb3dc7c78b7bd31a625ef2d92f9d9d86e09db45aa1c3b2d125747e5c3eaf9eb66068a0f272c0181408e58d1e9b901b124c34618c0dc083513e718af8a276a7fbabe36b6982f3a88f0621348019e1f481a10875cb98a1e56539b0b995dd92ac41e8a84548516d0e20693c418981a1f5e5f0cd6c1d220fb3459676f2767a4f7b8868a60eb803596225bd60163f233b0970fd484502a2b32c10c19f302325249b3a3a5f9f34228f55873fa4cbad0a8b3b6536dbc2b90ca8945d4f99a16d7ec695c072704ddd3c2aae30ba702b6b8396446ae3e9cf7dff3338414ab1f995968b5315aecf7e5e4a858e2c82d19e06f8e823f2cbed0257f4c00d8426e76c4eb3ff00ee9ba289863540f61f6dfe0019bfde4e25d5b41cbf0511ade64438add37e8566947d952510c49a539d8602135e290c7ddc85f2b7b015a699b3e5d2b3e393707dd744d53440f18fd1159b41326c0077755bc803fc2effcc5ec2768ce2b56ad937f9cbbf258a7f2bdc2ab563b39bf7a0aef41676e41ec2bc4bc3e304a0f5216ee63346f9c6fc6540b3362a391736e769faca66088355126cea9f05a8cf91ead6c5972fc99860a9170130a6b037a74ea13375d4662481fe837406ff2053429717287365b5ed70181de9e7b0fc2acf9dd2c01ac4682e0e3ed88cc8fe904dd811bd8d65bef231d850a3d9a75fe2745bf7f60dfacc527738229e74280f422ba757e17a9cfac2e723fc9cc535a5c09229f4fb411f0d57a9c1af418db75db870037f2210dffa489a2c7ff6c9865604314cb6241f29b121d7c7cbedfeb223e596cfa4e7d8efb4d45f82c3ee2b18723ffe47743a46c1c4f43c9d56a4843f689f979af10b438f9b9e40cf2f1f52281b2da8df11e62bf0e4e180cf04ff7c8476a10c069779a4ada3974ae822ba5a62cd7a25239eeed6eb4d4a8536a5bf6953a62d43cac6355bc17a22b86396f0c3efbee6b1bc3060cdef807d0df32a954c1e4c69c788625ae00767193008ccb749467bc9af5539722642763bea2274a12484bb2f8d82ad3bbf4d92ec6b6801d18e6553a971ea1d64ee0bb3039830baac9d25edd207972db7989efb95c6158e70c9a04653303fe0735333057a0e83dc8d07386de0b4a9a70a2a61781775c39544ab06daec7a95525f66f2bba1e377d1fb5dd940e851e50f5226c05b09b04673aeffc1a6ddc48cbdf4226aa0a66152fa03c5537636da4be5d7befd57db4ba146edd20d4828dfe8667e17198e5aa4725c43d1a581054d2c80c4f9dd6dc78d1281b0c3b839cd4530866fa7ab4cde76922f5981b86d9e1df832bf658866dee77fc7066a76cf4dcc68453a7042503a948ced7c36f9ad55370614f81232fbad7cbae44397d336f8bd1459d8bae8ea39505c6fd10febf0beccde91c0841d8d7038c9c8b477b2f4d2ac313f819ef5ef4032fb1ea3cc5ce889d75341b496bf1e0808a92670cfc6d01576766107843501773c16d870271912664df25b6189b2794eb473ceb57e39915a02de507910992dddc01c44b02d69924b9c74b8965ac82fb21ab2156dc56e5d10a6e2190fc81c2dcd1afa9a51d99cf6e429294694bf146dca2c30daad1083d3c3efe7289b945249a8e909e9e36a15720b3f8695b025b3553726da44aca2b10166d009da2880207de0b71f154e007f3a6dca0d2aaef19eb3851e717a1baf6622374e2c5c6ad412a98b5ed73d200c78833218123502740e847ce1c0fc018c8d6fc12b50222919e41ac737ba85dd73becab78743c2aaf7149a4983a09a7d200e93807e4ef38f74fc6b036a77f58d17985e40770d520d0ab7030b0e9e0307acb6245134861037e690e5dcaf7089225cb72aefd2f31989ac777803c7d1fbbf2d96cfd6b3ac3f7cad050c6e8c2f20689a93588f01e34a85e0abb7453c7eae5e5c06c24cdee26316f7ad659b0f00e21a999ebeb7fe75ed8bed03d230aebdb5144ec3561512f706eca4058c31520030c94981ec311b2ed9c220d74bb8421d54a4d358eddd87290b5536204f6c151a9e026aca54c73b2d9a890eaab413030c3566a2a07a2325f260c3dab94a130677eb151b37cac0e70a5eddfffc1b50856df8431e0f0c8d803527fc653a65507f8eed6d52d2d52e69ebeb16935cf025b01f62c1e98e0b712788dbd2cca40ef07190889e035f9b5b0764155c207f80bfe636c27e30e82f58f79169ea5e5d1870939529c0990e5ed9174184e04fe467576b73c5b85fb72a22135848e7b78ba9aea2c63ff4da30f770d6dbd250235dbe8485258a3a9cf9c8cee844a1aaef5aafb1004e550138f63fe57c98fbffc51993080fdc441ef8798110be3353dd7bedda0849f27fa8a75466ad0340c01da57e887dba21646ffe9907208a56a2e670344063a9258fee97c092b7c20935fe4f550a0b815b4532d7d19170e6d03265bc79024bae46920df3055160ccda278ee254987c5811aef89777c9daf5f32c6250ae8a90547ce16db871357e3ee57140054ffac1f678d1bb125843f95fd4a5ec6778a80a10cbbc99fe2d66c63ef134617e4651f84a0cd1176d9ffa557bbad098a640df2a7ad5e9ffe41748a6fe34acb18363d22dcb3707fbcbbbeb811a4f5a3d36c980373f47d49a5017c9b9b934accd26dd947f1e8fbb97f72bfadb960a90ca8ba4a1bbac33cb66b95a0aaac5a750e0492c9c8d5f780ab70041c0c6c261ae26f189fbde9019e2fce8eaabb4e00b3a4f2dc17254d660a2bda37f55ba33953eb5e6c9adb5bab37c9a6e923cfd7def7385c83a1e47906900e4bdda95cfe53dce57467db1e0221975d7df6ecdb9de05cde135823ca49b36982d0136ae75591ffdd8c24c7180827fd86b27d5a4659c995018dd51dec0d4338e01b2291e54acf9c0a8dd165348d491abe5588ca266d553f3627c57f64184b5738f4889d3e2bc1b9fce5531e189300305d07449e8c6e1de76914963e2eeeb422cbf566b747356b88f7130243cd387365a24a9c4d7293d924a62eceb576fa13ac5c07734cd8d6c39de8468226437a9f303bd4a61fa90d3e66b368bc703c80526644f009123597ee8c6cefa5b34d2b204feaebcf405f69cb4bb0d3f15805898442c43f0b76cda0d426cac4d6e0818034d2af15304f99b98f733f56d611cfbe0c5faefc1fbfb53d434c3eed72ca37717bd4a47443f52b27296b5f30284e0a7522f4f53669840dcab028938cfd5f6be78bb91c653f896a85126e90402b51469222f60e83f131557efbda6b94b83699125a32076c8bb75ac13fb1eb9462ff52a3342cf71185bdf2070377d105bb264da84cf128e8736140083cc2350dc102adabe259edbf9a7e559be71c4892432446e56678a307a56428137bc3fdcf2bb60442c0e916e5dc95ad075029b78a1b9c52b11d73c37a935c2bf965fda8857cd65d1fe4bee45b76ef2bd659d2c273991400947e304dc4676ab3cf951707b510dbc3bff55a14d3c58dfd76a0da17bcda2be0ac04d050463da4e3245a9ff06c789c06486291c6b396df329c92d3c54532c80ede85e7da68d84b4e1b49d92dbe7f6cd9d663ff4c866a3a094b8998e6d47aedaba62ae5fbdc32b61eda6638954455430d0a8b7a8b0b93b7b60277d97829931ce5c0887bd98ea10211e2c0df8b7f3a48c1a3afe39dbe8b7f8c618670572aa55619d92fe08d6bae3bff13e2268954320f5893b4569fb6a78eeb6ba8a546b3f694c1b495c9fb839dde4c58a038cf97f16e705474279b5ae67f510a1cc881b1daf0d714ca3ef057dc7279e114e4d0573eb766409ac5ef5f33b938fcd1fa13a0ea4ed929b14c2a3fdd885d372204ffa835aed9350fb3ef8c22e4c96f79bc2d053245ddc8276f0eb0b933abd5f8eefc6ef67e3a294c2e9d96fe70799e2461dc12f6c956a21a3750f1eb64d9063c149d17a6e6c45d43b77d5303752fc5dd45f8a4a769984b7148a41681fc9ef8a9fd96058b115a3e47623fc6381cf32605a32d03566d9e6f3e07a485738557deef76173a4d2c76cc8f0e4c99cfa700a512141d4957491f1488fdd1c477d8b1bc2af51ba3df9ef2e79308c0ec28bea3f85e5d1586ba916d8a9f22378b30f4fd5680d6d256d305d16499e44e96f2a0d773b00621ab659033a14ab8f0dd030dd67280534cd677d294003dc0bbcc4897c35ca27d79145c04319b5d4c8535f877350489a145bfc1cb61a180c657767e3819c8e3672e29d952849d56b7b47e9af6a904aacafc2d9adb38ad4f612cc26e94a45d8af2debc8cb4c9e9d889d1b40faa6d4437eacb89411c2212ca25f4f8046cfa19a0ea25f4f991e9591065be939165c49bcb2070421b70cc6dcaec874138d3a9d407eb5faf194412140fcbb6bf0ef0b7027ebdce4a700c08f97388826c2262ad411e288834addf7984e1b94e5f019c25fc7e4991fb7c4ba9d9768737946d7fa14c36e6a92da3cd5a48f2eca65f5ad755385c29b53214c46c8f6904e299a922c60d065bff443ce0e833ec94ab86ae81891b34386c85abbfea71a5eeba2b464bace5ee796d7bbe5479d2da64d4343b2f07e0ca749f60bd4b3f92baf6531932ea001426c9dabae79ba2ecfcdd771e6ef23e0dd82de67f11fa4d4d6b6ec514c6df9244af1adcf3b13664a7c1662cd4e00961d322c19607d66b9db27acdb5264f4b3554b4403da796602fb6132d230e7cf15fae07aa90347e6f28a8cf6348df7cbbeae135d632db3303726e3fdec09eed6d87775c3d0b5950046bfd48d3bf213decb7e13edfa3333030620c84082d1379343cab457189cf59dc8f2705ddb05ca97b547f5731c77fe298511d65d11ef153a82b60d4a5b5f5a7938c35fe881cb474e197ba355cd4239e38a4205d8b78f3b10676f6727bf1cc7c74306f9497d6c0b21e80dabaf046b86634ad11138245e5f993940be49906e4995cb1c15c68b2140677fc2c73d615e7927b13f9d3ef4eab6b54f2616334bea6bf325d720b581d9bd3bce95a8dce7c08ca61f31f5f2413653d2c7a2d4ccb1c38ab424c5c490a4397daaf9cd8a11b7d5bc3a5447a49e1b38df99c31c5e0cb5a1aeb9fde23774e3a8f76c93cccf8033859eb62dae89c124c27fb03751beff8ac2ee8c574548342235640781812679ebcfb17872721a056297c43d36110762886dca06d2e44706776146a070f881b3f39c77d1a241acbd24c2ada9650ac78e2b902c70a643e0646e4557c08d864653643e82be4fd0f74d25b9ec8608a801110468dc9a9b0f0695b466505d60e5072c7fcc7545d4c3b19a9c2fdad5e4634dd4cdb403a9c2c4f45ab15126eeb48dd45a709d079677d5b871423849c71a4074b395fdd1ae8b5bd55c2dce8314d5c7274cfe566cebaceec2f1dd88747ab4186ad1ef27e02b47f540c691f00f2e9131aa6a1d513f815a87b7148fdb80cc83ea13647a6ca68c096247d67ad069d0ba96f0b9a82381c455e85f82faa582e6e4573073a18737680d491ef86475aecc711a59270e91e80d875fb8733dcaaba245828a74ee441b5e7a9de626c3f20be4b4a179ad9a04c1ca84318c17a013e5214c7467c68683862775743b208589b9e27be48501aed6b053e1b7e4e4d92d72f1c20e701853c83fd0b3d643a07e1c57c6b22dce38334c0b8a0e1aa51a3bcd06a48fe50855316d2781c669fbd4bcd344c74cf44d153a17222798cde42d31dd252da4dd5f1f55418070045b1fa1b81f1502c7ac940821692183ddf3bc29c67dc41a356447ceaa944a0e0baae686a07a15e9ac3fcf2639e5e9317373da372b09f15459ff646285c3b3e44ad6758fde411aec721c97533073339cfabe102444335f88f8b53030e489a6e6a2f293988280080fa2b2286d357fd4b1dc6247787a6f25a6528a4bb85f008d7cadf91c249c5c275b615afcc865fa1562e767ff4757a662b8d3aaf5ea64bd61c6d85ff361bf4c90fe7ebec4a7a4cf709971135f060c95da79c6caaf16a6982f88e54a7c21d0e1071857661155073d6f772eed16afbc99c16dcad3f9804c5234f174ea0509b2c57503d954cb3426376015a62016eb9501d92e210194f901e7f58944554c8baa0accdb5a1bc7844fa3b7b001c966b2c3f1c959c530e21a307964e41902b72d35be927e6217728d9ee26e5956a2ebe8a2045d9dfa7f1388933c801483369bb360502074ca6406507bccfce7088e4cdb022f7686508d62de7889b16e28e0a1d99be65e5e83bb2c87787e8250ace7fb1540ec35a10e26a7da5b13000fe5b23541d125add98cca11461ebedd50fa0f06284370b581a13067b59c11b238c686de5f9a3697011d5503e9c4917ca90dfb1379ea40f4cd70a6a0a6ed6575e7ede7d8907f7885729c433ec512c99cd13bd5d1ba1aac4b8d6473bd1c686b7ce338b1905c592c336c2386e169dacdc2a8c7d9be688fad54f8e0919e84938de528c0285fa90cf36f1f71f5ed86a45eae51bd9ea33cc7f1ce1fe7f876c130224553fff98b5697201767db6bbd502a4b598562cb99c6fdd70e0d761011d11baca8ef9ae1ee5923da1fa79a76fcd739470a297065c4bbf2ae1b8a57f9f5bb72ec860f5d220407eed8748be7b35860d33ce5849a6c65aedf2e314571d9eabc4029c5d3e9de6ab1c1a3982a983263cad11eade23b35e98e3b2568cf574ac11f3d4500f1ce8ec9bdf6c44436522dd4edf3acb34e1b2d4e46c6b8a86081b68c51c6614d1139e06c43312dae5caba0338b2e68e2e7fb3c84df191b41fc967982c5854290459d8a3159e26172ab8ccc1e44c5819caab7c66686bff1e3c13e163247d2301e9d2e1ad2a79bcb6d6981d567b3b573dd1e54bb865ad569f2c0bf8536946b26e1345a60c2c2de130042e496ce7f6e8f27aa69258f012e9bd283c088c31778284920d5d3ef581d5d781a3a42ae4a3a2b57ca51ad4382a35a4ab952e8ea87139ff1d596e645aa2900ab79fc9af4fbe0d39279099b33af1ab16e619372cedab2d81003cebbfd34877f437b4524d15c38219121a01832e78dbf65103c70788e89f23eb45f18dc9caf2802d8e58d77b9df801b0225099e99fb2f2a1463bc30cdba74be538df3f8c5c141a485b57aeda389c82bd6b25a3129e6fda5d4525c5795fd80afe68feea7203c8a01ba0b2a1ff7a2b2ea47d91f50b7da928b30c7d5f397324498808d9f8f89f69b7e6d9031603b411c26b5ad58ebed938a310bd4daa5bcf1104153e026a378bc0eca6bcee02c7597175bb8e0c9590facd1f507ac9ff88c9c05226ca3d1b0f7c70ffa7fba1edee9d760171dd38e440375db0c64296aecc78d3fadaaaeb79fdcdb4a234351061aa407d8dbce6b5f37821933a6d6ec3f7836b68f2b6e409b1ee7875b4d03edf0609e87eee4809cd8bfcd61682db97577a35754a47c5f41797920c1ab22fdbdb7dc573595f23cfd66c326314ed078c4963b42d869472d96cf00afcc484c768d727d667f988e79bc95780fcc98c3dba138474aa3b2031d6a39c7c46b476ae450cda108411fb443dbe7f560eecafdf84d6f535825af40511dd452ba8c3e66644248990d8e00f4e6d736cef542c794fea817d69182535bc5b5543a90cb4c3b1334171680f97870ef824aab8e4741d2e739e391825c4d15252f1fc75a0d85d29d8ab95a8dabc3d3c74c16ed4e6231ad16d3737a7859221f00a4e225ec122d46b0fbf177b7a0a202a6c4c468114ee58ca084a6e9c5b534a62e13adbbd112472ef0d5df8d1566a1af0df5b4fe189f72a2e1ee9af07dff2a0ed7f56eabcbb7410aa27e53c6aab222a6770bc16f2112815c1bc05c7cc7550e6211204c5669a8389a9ae1c0e89b47ee68758d7c24848501d74638f84a9aab92b6e90486f56be8810abfa6b7206b288543ca491f284eb2726bafc146a428e341aef313d059ef862741f50d95a2654e21cdce620bd19cd6cd91f2c7bb030c9fc1b139eec7af11632c4c9c89a8cc5c6a8206ced0048daf73ef08b436586fef25f4db577c59d2b059c41569ceead5a581440db1ae9e09eed6e14e9987c3e68b86ae53b76fdd39e2180759236da7a2f7806c2c061cca54494f6117b71fea4ec827349538325f328442d7cd180b435e3fb92c693f0eebc67be5d70b93ab6b044ee1b674deacedca9798c083c7087ba9646d8d0f667d43a59565d61fb7ec50338466e4ff571e229446e423bbc66e902f37df071beabc95d1cee132ee9b12116e7fed4b9540c37181ae5f53d46ce5b5e025b31f3f2da10db3c8b33d5fae02e5fb19aa16325d8086d0990ddad517b83152e64a6fe4244b0e2ee2431475f8feb820d941a8be796cbf9c4b1ee74bee40437ae6e54bb46f1a264a2c7c58c295e79d9f2377d6d446e4be75eeadb7850ae687a098dd3cab37f5ce6aac7117419ce4b6b21e2842743e668cb8b4948e6ca56567167d6c071dc14ec1c78b025f8e6a9682e0fecc2c799a839affea33f69924ab71c6a8690c5e7521a6d3328fe60ae804d7c1153fb68aefafed59bc3c718534b55482cf62dfe3e68f9d89919dc14d4f9f601da02045a14822d7562135d0a44e7c7a77c2c1aeef5208050e2cda773508091e9a801b88a5f8b9f510be0b742bd517cb7206de688017307a9279d75226ed8cc7e28b900f96575d6bdaa3d8edb948d16f179b4bff1002f59d1bd627b0d8724d74359fbb7e5bd9744b9055cf29d383b1f25454369990cc8b04ca941c41c6a7529679096be4554dd7f3456e8168865d8d998752b08ae318e836a14b7833bc25abc882263413162c720a5ea6363a763efb16870b35982155c1bd85b8fbd71e0cafba79a7183162df1b3cac9877769bf20f5304aea8d3aa8f0e4ee2480f2b782b39b9bc686cb579eea89ae7ab458a57a9e54e2c147eb77f08bb9acf7649251dfdb47ed82f5eb6353bde3799f8e785e617308c2ee046c415ecf0076a3ef504181827eecdb3b6478df5918bb3ba493de6d83ead60ac71f60203a3fa88fd7f6565d4e7211892bd8bd448eabb8392105e238c86c962da65958f41923d12022676d95e6a4e5cbb037f97a0e0c539907efd591f37475c15a628e709a7acf37b82123b93885e5753b25baa15811e92422c1eadb1b2d812d365e97bd45c9b031abeca0ea58710e052757ec91a0e7d094b950c01ca635e58f72b507bdb3fcc1e6360631773282aadb22d389741f4501c35dc19240a7df1f7b1db347292a3352b93264ae82979d832ac5bba243d0d9f49cf0150c8417bc4a83e71e3bb8a19fa1a1c81342052b365ba1faad55f420876eb4725fb4994e22410b40117ead057f29592f402845b35552b43bc1c856c0bc51f09419774e336f0e322686f9c621d29e5c2a55fc5d967b66f5d1f8fc3d9f64f08656c4f5314c59dae9e902bb93fef69c35f30898e533c9c7b14e0393949a2e6d66aa1ab0590cf67efc606eb2ea5e9dff72c9433af3ce99da9f51751a68c345ad6033ce6136355a1a6696fb955a6e02d15729ebd492c26884342d56185faeab9acdad7a9fd045ebe17dc0baba6df3958f27d6b9a12d78af4e1a48f3de82487acfa5be181d4861094a795108c62fcfd7c510e4b82c6d2194a8dc5f77376a2180a404fa98bb7cc5f3d3f1707b823488ea2c19524b66ec57c8f8e51d0338f6918d9aa77f17b472327c514e76f2519df09542ab769eeb60164623784122918ec9b093ecd9130a912ad0e24b87b4fbba9a7a18431d71df52d6b505b3e155c936649e4c8057b4f11dfa2137b89d4b5d667fd84e11efce47fe99c2ca6c94fa9e38464c167ce9863335c37e878637808ae620e246d61ce31db2ffc766c710f39ee5e72ff302df255c822b5da3a29a890672e68d3615a9f91f609b50ab76d5cf18c7705e44d24f3ebc426ce64fa28229f9d8e151990f1b9cd05aa85c5a0e2f1d5c2861feeda0b111f7616a9e0d9f397584b17eedd98b7d20a35b53f8d141e9801ba56480a4d520f0b6e46e445f3047a29451c65658a0b6cf8fc18e5d2b27ed1b81147596c4220442ad394fa818c413aad806dc0154b01ac5a04e68732e54f2241794436ecc09ddc53cb048cee60b14c8ac6451f7c42400da80551904132fd8ffa91c5454048010f21db56e7d7dc2e4145d81a565cc2ac03278898a525ea638c25948233e6ae58c0506af60aca8971b1c552ab6bcbb436936df3f0ec0fab9bd2ebc3369586c6560a8ba182636ccebbdb62f1ec85a60f563ed6b132015cf907b936819b357f36b7b8f5d0b7f187a18ebfbb5791d0cc7179c9f3284f86129d4c1e0d00c2c53f77c1354307580e01923beafef27040ddd3e699e98cbda8137dd61819d6e7ed96e267f4b40e29c2a0478c4b1e66782ea40370b75a549dac400114d83195d34cc0d290a660aacfa80401dc3c5564e414d8a0fcb44691acc4b5f753b6ec3a21606cfc306496e25925e4a45cd071f163a61ec91c2d0af920311001c2924a35dd3f9059fcfb7276f00da92070a30f43467464028f4c32e165c462802cd4a5fa51b26f77fef353f66bbf3f6b03329d42aebf2123efc57b8eb6ea828b38ad08eb3e88857065e6183c8a182142af26413bf59a673f78745fed6d8c16617caa0f16cb249573a4ebd6234c1a62d3d770cd2f9423db910ef660e2c512077d0b55d56221faac4b4eceda792cee54971d75c24af5674995404684514df96a9fcb992c5df02fecc1dbd9abb54f83c0701f104688fe8e243ecfd3844b284f0bfeb9171e2ed6533e6694422787ff4a25234e889e8f968f4d4029bbdc7d1d25539fc6b1becf89078e967f49f8719a2fff29db6560ff7fa2d9d23c152b59e5de5c4834c1b28120d6f81fd28ffb1fe0ad8cc9a2459967c894526b343043046528eb2574b0f732c42a68eb0a10ae2ba46e9fa6937d0f5da343d6c940445a69452208dde89e3f8e8f530b1b29bf48e48ba9a4d3a66daa970f049d914d171cd3f30f619afb3e0f94eab7e9a795229ebe97575fd2c5d651581fa5446674df811a647fd757bd5534c124ac006550e067e3fcf1bcd6c9788ac5f1d966c26a43c7a67fd73b9555fea2f454833b2a700754bccd06ae37d02d100129e12ade2d67dd9cdbff20bfea0336a5e3a5c446441bcdbdd4c00bb89d0f293153f23cd581b4978b39b87a5e3ce5809e93c87e7953fd40b7d66447343e021e7f3fa4d1ed45775b382d8690f3f99404b9b6cdf94f0bdabfcbc5eb2a5893292d5c50824f8a240fdcab165d44875f57958c60f02d6568f3681719f8a863fc4ed3598622a5b4fda58043704852d60b9b8bb67c78eb8d45d55383e884b4aa9ff31be78323570bd45526902bae861dbb3aadc438998ef26107228b9a9037e2cd542f496f15462833f86545d5f9a5d7a5b84ae82050dc21dbd178675f89e28c4482ce60f855382cd0f352979b3262315a16cb858bebe143508622bdf78094a091dedc0a347f7bd630776b9a5029d2c962648a17167cad2baef648a7dda433dc4e1d26770319cc704923f35588d80edcfdca8559e7ce9375dd10dd5c35ba4c046917f61d7aad708c01c378684426091452e1cac574bdab612d81d205595aac818d2ca523c46c4b1b8263dedab030b73d535896a29fe44cae488a6dec6b4cc378465bae9e80c2ab2015a0acbdfb66303c0c64d26676fb6b90148713e6f9a85db4f3b2281756da09f278ec010d3f23c231f6f645c9eb11fb031313575186502dd5e6204046f01a3525f19ae99465e122f4faee334947b7a7ef983b2e25d0d5aa3ca0928aadc7930bba6665d7d203aa76ceee0ad8ad1ab8aa6a27098ddb11115256c542f92ddca839ff82035f282fad26799e1a4b53cfc70c228c0522ff16bf18bce9c82b6fb4f7393c3a7a087b75ca2ba86968c50afe4063d29a323ab590af3b897cfea2e806b3911eedb0503eb20fab70e921b04c51a40cf8acdac18546b1eb24a43e4adde3e3343653893215ffa66e2b952a1af37204d5fbf3f26dd068d01ed2d00ee30dcd10d378ca02386c548404cebad72bfac42a4db924298ae0a47a399a3e5545b8c12cbadc9041faba2c32f89adca56da39e7ab54f9e3148dddea8462f1c0c3f789583636cd3cace7420e777839148e0570b64648558fef2ecd3d93accfabc9e45cad68070f22eb1d21db3b333b6c6b099a1b1a07441f2345b7a6aeef8be63501ebcf9148062c39087b1381afa64260ad204e7409cd0e643ed7ea71f94b257b2a9bdc7d81a0003918e580b4d1e1032d2e64cd17f5f791abe4f879da039248f1ed22db3c3dd2aa371c912fac894cfa10ed334b8a24cb2a1b3a6222f18ac44792c84624a92af1f42f18c73f2578cce1c406cc0bed329a220b4877c393ffe3bf5c777e5997c776f6b0b741dac695f0e95b09af11e17f8a82b70e470ff6a9ab2d112b880f856d326e2e9d994b08ed1c381e62839b27c438a86fd53805e805603d78238e1698add4d41bb32fa52557b14f9b23988220dcf96a5ae3f8e8793603fd6128988fb23f5da94bf37d9baa426cd8cf487cef302f1fd14bc9d768eefd195644f1812a30b89c84142eb430fa81f6af68dc181ec96c60c21daf3c1d3789284f4d95be54c21146cd141ed7aafa978d6ee15000250b787e7381cc9d17196a57c11a38fe9be5fa59f17e3cebd7dd8c2acbb301b84f500a9120977f76f612b1b4195a0e80f8a43e4e94194c587b0a3d896c4e4bfbca19dce3bb5a22157be83edc40c96d9658baf97527d53549cc2d8fd49d368f6e0b070aff0689a68f489447a28289c8eccd69179883d56e197dee1b42c2f392cf12eb7480927f748ed996e9f493c7398aa12e2f3f5b4b711713b374b2eb4137bbf2107b5f96530e21a1ed51773e57d80905fb05c7ee88ce6d674170dd5358d1adef2cfd7cedf9513a363df92349a743d04d22c8307180a52074469b95a117f9b875c9b0853406344e7fb9730c99424a03db0c28e9bdfefa5b5e928da073705e5f27d8769e86ce8efa15a3c4e16519c1b0350a08dd73356206550e9e069096ecca090d3116c265f4c80a06cd76e06774604686f58f93790a94030347de0281aafe5782db9f44cc52c30859b3e9e9cb0bbf4a0c42d6088beac9fc3f20bba1d79ac7dec7ab2148aff009528e07e2fc83c559304a016a274a29eb4a51f1228496e3030816a07293b3342e151d3c5aaebf3dc6faa82abf78a90ff74641913dacfdb63cf038657ec87043b38c9b6f7f124f78cd954013018c89356837fcd8b953c5d1af8753e296ca67c6cd8b63e3d084e4d9d5547badc8fa055eb9d2243baf16261f1e02de176f21230474bfe4884c7b01c21a3405cc525fc2edd9918324bb200393387027c6ec9c277c456ece0488e452a58666881e8356017aeaba445ee073f48a89d18d1c4c54144ecb79c9ed039ca778d5828aaa31097c13a8a5717f4033373831763c095f01a62283f42631091c2194f31a2b9d0fd4ced0709bf7171e4d96e1b9cffffce8bd07b11546d963daf11ac77186f7d00524d20605166731c5cec883fa4c2ba0770d246bcd963ebb4c019c3e7a24b6a0ac4fa8d8f0308e9233f550cb3ee88e281cdcda7530e33008a8bd2df3ce94c8099b23d1c243c96f661a58720186aced0e2ad356a2b5c1ae94b43ce795e70e82b6bb67112653c46a148b3541ab11719f3d61266c8b2a8db55dc624b1b7c800837be1b2765339f5ce2778c8152cc24de4149f0e3add03ab9f44df3e3a788403ece057a0637643cdb658422a005618db75c4b477019f9d74d11f6dd516a96a0122547587e04c502b59013ac9bf241caf87cdd1a8ea485437643dd348e392f190bf8921fe7f6c1931ab1074285ba8312aefc97a4f899e59864e5eee6054a3ddcb3ef847e2e2506da9ebb8696b2a3319efd35ce737dd0bcf3481e34299cd34da360cf9db3a928cf9060435fb410004fe7afc0c2cf3839f6fea5cd7ec58d5df6eb08c81f0fb631be0a6ced94d3446f4a059a0ca65f1ad89afbcd7cc42fa8d53e59f3120a39e0c45234da1ce55a3c4f8f6680796f859c276f7f5edba16d3545260f8b4cfaaac738ca321dfa7b51ca32158bd6e6b5e5b4b1b4ac472498fcd3feee8d14773455980f99768c25b52c14f396898a662212c3e83b33ab2e1e4bcc5e286bcd0488dc0d42e1818ee4a72e5b8dc7c489513cd85519de5c19c9329517bdc4cf8d2db7f7a327618c67826aaa7b879504292ff8bb3e90c7343cda74c975189db36737f033f23ac2f2f458ea144dfd6ad88b4ab6c7cda9e18c2951afc589fb291512e01a8a76ba8c9e14f5832b023e99dda9d7b154c04349cb3e1be5445b0af81dccd843440019bae783ac1398283acbde5b8af036dabd4036346314539bb9d4bb0efc9d3400ef7b767f5542b5f485155b2a5d262b396bad087e2aa0469eb096a0597ee61c208b14be91fb88db84a37cb71443f77ddfabcd44ed65644a3f9483bdf835d6ac88ce2e6ee84d8217e887b0a2d0aa9c5cb95eb79ef78eddbd766c683ea4a93f23c2b0a15bcc16a13a3f31a1c93892bacbc1d39b01487d65a473391b0ede77e36f846c890b863cde22512195b809d59ff6d1a40b59ef051093da30647f88eae52ec78c1aefc90656bd20626a3898667481c315cc73f32ef38b80c6f5b2033db6e2936cd3c9862c49fe88fe2484478cd6a1cfa992fa94ebec6c0bbd443b94bfe6697419df1304946aee0a7a531f7b4422bd4b83fa47d12f0e2e413e0152e8f9be1debb0942439465b2adddae56b7cc92fbd9bebfdde9b6685bb6a3f9f1a85ed4e9faa812826c57d68004ac3b75d39f00901845cc76e85a6c4c9d48b944fa4a3d820ee3b8f8d7411a4753e4653c465d81c19cfe67f2d872e4e3b63d2f8c377fa3b5dd37d694f74e8f86d42f0fba</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">这里需要密码才能访问。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css"></article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta">文章作者: </span><span class="post-copyright-info"><a href="https://sswd123.gitee.io">laptony</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta">文章链接: </span><span class="post-copyright-info"><a href="https://sswd123.gitee.io/posts/22757/">https://sswd123.gitee.io/posts/22757/</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta">版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外，均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来自 <a href="https://sswd123.gitee.io" target="_blank">zapqwe block</a>！</span></div></div><div class="tag_share"><div class="post-meta__tag-list"></div><div class="post_share"><div class="social-share" data-image="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/9.webp" data-sites="facebook,twitter,wechat,weibo,qq"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/butterfly-extsrc/sharejs/dist/css/share.min.css" media="print" onload="this.media='all'"><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/sharejs/dist/js/social-share.min.js" defer></script></div></div><div class="post-reward"><div class="reward-button"><i class="fas fa-qrcode"></i> 打赏</div><div class="reward-main"><ul class="reward-all"><li class="reward-item"><a href="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/13.jpg" target="_blank"><img class="post-qr-code-img" src="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/13.jpg" alt="微信"/></a><div class="post-qr-code-desc">微信</div></li><li class="reward-item"><a href="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/12.jpg" target="_blank"><img class="post-qr-code-img" src="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/12.jpg" alt="支付宝"/></a><div class="post-qr-code-desc">支付宝</div></li></ul></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/posts/15871/"><img class="prev-cover" src="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/5af17f7f881b11ebb6edd017c2d2eca2.jpg" onerror="onerror=null;src='/img/404.jpg'" alt="cover of previous post"><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">网络知识笔记</div></div></a></div><div class="next-post pull-right"><a href="/posts/futurelife/"><img class="next-cover" src="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/10.jpg" onerror="onerror=null;src='/img/404.jpg'" alt="cover of next post"><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">未来憧憬</div></div></a></div></nav><hr/><div id="post-comment"><div class="comment-head"><div class="comment-headline"><i class="fas fa-comments fa-fw"></i><span> 评论</span></div></div><div class="comment-wrap"><div><div class="vcomment" id="vcomment"></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/11.gif" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">laptony</div><div class="author-info__description">敏于思考，锐于实现</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">12</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">9</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">3</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/zapqqqwe"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/zapqqqwe" target="_blank" title="Github"><i class="fas fa-github"></i></a><a class="social-icon" href="mailto:2496524403@qq.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">折腾中学会知识，互访中找到友情，写作中读懂人生，坚持中找到方向。</div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span><span class="toc-percentage"></span></div><div class="toc-content toc-div-class" style="display:none"><ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#how-is-the-word"><span class="toc-number">1.</span> <span class="toc-text">how is the word:</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#to-be-what-people"><span class="toc-number">2.</span> <span class="toc-text">to be what people:</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%B9%A6%E7%B1%8D"><span class="toc-number">3.</span> <span class="toc-text">书籍</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%96%B9%E6%B3%95%E8%AE%BA"><span class="toc-number">4.</span> <span class="toc-text">方法论</span></a></li></ol></div></div></div></div></main><footer id="footer" style="background-image: url('https://www-1305197828.cos.ap-beijing.myqcloud.com/imgs/4.png')"><div id="footer-wrap"><div class="copyright">&copy;2022 - 2023  <i id="heartbeat" class="fa fas fa-heartbeat"></i> laptony</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text">Hi, welcome to my  <a href="https://sswd123.gitee.io/">blog</a>!</div></div><head><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/HCLonely/images@master/others/heartbeat.min.css"></head></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><a id="to_comment" href="#post-comment" title="直达评论"><i class="fas fa-comments"></i></a><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span>  数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.min.js"></script><script>function panguFn () {
  if (typeof pangu === 'object') pangu.autoSpacingPage()
  else {
    getScript('https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js')
      .then(() => {
        pangu.autoSpacingPage()
      })
  }
}

function panguInit () {
  if (false){
    GLOBAL_CONFIG_SITE.isPost && panguFn()
  } else {
    panguFn()
  }
}

document.addEventListener('DOMContentLoaded', panguInit)</script><script src="/js/search/local-search.js"></script><div class="js-pjax"><script>(() => {
  const $mermaidWrap = document.querySelectorAll('#article-container .mermaid-wrap')
  if ($mermaidWrap.length) {
    window.runMermaid = () => {
      window.loadMermaid = true
      const theme = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'default'

      Array.from($mermaidWrap).forEach((item, index) => {
        const mermaidSrc = item.firstElementChild
        const mermaidThemeConfig = '%%{init:{ \'theme\':\'' + theme + '\'}}%%\n'
        const mermaidID = 'mermaid-' + index
        const mermaidDefinition = mermaidThemeConfig + mermaidSrc.textContent
        mermaid.mermaidAPI.render(mermaidID, mermaidDefinition, (svgCode) => {
          mermaidSrc.insertAdjacentHTML('afterend', svgCode)
        })
      })
    }

    const loadMermaid = () => {
      window.loadMermaid ? runMermaid() : getScript('https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js').then(runMermaid)
    }

    window.pjax ? loadMermaid() : document.addEventListener('DOMContentLoaded', loadMermaid)
  }
})()</script><script>function loadValine () {
  function initValine () {
    const valine = new Valine(Object.assign({
      el: '#vcomment',
      appId: 'ouV9RVxe71Vu4hdUP93QtOs1-gzGzoHsz',
      appKey: 'laBz1asytkOHj9NfuZVJogqf',
      avatar: 'monsterid',
      serverURLs: '',
      emojiMaps: "",
      path: window.location.pathname,
      visitor: false
    }, null))
  }

  if (typeof Valine === 'function') initValine() 
  else getScript('https://cdn.jsdelivr.net/npm/valine/dist/Valine.min.js').then(initValine)
}

if ('Valine' === 'Valine' || !false) {
  if (false) btf.loadComment(document.getElementById('vcomment'),loadValine)
  else setTimeout(loadValine, 0)
} else {
  function loadOtherComment () {
    loadValine()
  }
}</script></div><script src="https://cdn.jsdelivr.net/npm/blueimp-md5/js/md5.min.js"></script><script>window.addEventListener('load', () => {
  const changeContent = (content) => {
    if (content === '') return content

    content = content.replace(/<img.*?src="(.*?)"?[^\>]+>/ig, '[图片]') // replace image link
    content = content.replace(/<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi, '[链接]') // replace url
    content = content.replace(/<pre><code>.*?<\/pre>/gi, '[代码]') // replace code
    content = content.replace(/<[^>]+>/g,"") // remove html tag

    if (content.length > 150) {
      content = content.substring(0,150) + '...'
    }
    return content
  }

  const getIcon = (icon, mail) => {
    if (icon) return icon
    let defaultIcon = '?d=monsterid'
    let iconUrl = `https://gravatar.loli.net/avatar/${md5(mail.toLowerCase()) + defaultIcon}`
    return iconUrl
  }

  const generateHtml = array => {
    let result = ''

    if (array.length) {
      for (let i = 0; i < array.length; i++) {
        result += '<div class=\'aside-list-item\'>'

        if (true) {
          const name = 'src'
          result += `<a href='${array[i].url}' class='thumbnail'><img ${name}='${array[i].avatar}' alt='${array[i].nick}'></a>`
        }

        result += `<div class='content'>
        <a class='comment' href='${array[i].url}' title='${array[i].content}'>${array[i].content}</a>
        <div class='name'><span>${array[i].nick} / </span><time datetime="${array[i].date}">${btf.diffDate(array[i].date, true)}</time></div>
        </div></div>`
      }
    } else {
      result += '没有评论'
    }

    let $dom = document.querySelector('#card-newest-comments .aside-list')
    $dom.innerHTML= result
    window.lazyLoadInstance && window.lazyLoadInstance.update()
    window.pjax && window.pjax.refresh($dom)
  }

  const getComment = () => {
    const serverURL = 'https://ouV9RVxe.api.lncldglobal.com'

    var settings = {
      "method": "GET",
      "headers": {
        "X-LC-Id": 'ouV9RVxe71Vu4hdUP93QtOs1-gzGzoHsz',
        "X-LC-Key": 'laBz1asytkOHj9NfuZVJogqf',
        "Content-Type": "application/json"
      },
    }

    fetch(`${serverURL}/1.1/classes/Comment?limit=6&order=-createdAt`,settings)
      .then(response => response.json())
      .then(data => {
        const valineArray = data.results.map(function (e) {
          return {
            'avatar': getIcon(e.QQAvatar, e.mail),
            'content': changeContent(e.comment),
            'nick': e.nick,
            'url': e.url + '#' + e.objectId,
            'date': e.updatedAt,
          }
        })
        saveToLocal.set('valine-newest-comments', JSON.stringify(valineArray), 10/(60*24))
        generateHtml(valineArray)
      }).catch(e => {
        const $dom = document.querySelector('#card-newest-comments .aside-list')
        $dom.innerHTML= "无法获取评论，请确认相关配置是否正确"
      }) 
  }

  const newestCommentInit = () => {
    if (document.querySelector('#card-newest-comments .aside-list')) {
      const data = saveToLocal.get('valine-newest-comments')
      if (data) {
        generateHtml(JSON.parse(data))
      } else {
        getComment()
      }
    }
  }

  newestCommentInit()
  document.addEventListener('pjax:complete', newestCommentInit)
})</script><div><canvas id="snow" style="position:fixed;top:0;left:0;width:100%;height:100%;z-index:99999;pointer-events:none"></canvas></div><script>const notMobile = (!(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)));</script><script async type="text/javascript" src="https://cdn.jsdelivr.net/gh/Candinya/Kratos-Rebirth@latest/source/js/snow.min.js"></script><script defer="defer" id="fluttering_ribbon" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-fluttering-ribbon.min.js"></script><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-nest.min.js"></script><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = true;
POWERMODE.mobile = false;
document.body.addEventListener('input', POWERMODE);
</script><script id="click-show-text" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/click-show-text.min.js" data-mobile="false" data-text="I,LOVE,YOU" data-fontsize="15px" data-random="false" async="async"></script><div class="aplayer" data-id="7455077979" data-server="tencent" data-type="playlist" data-fixed="true" data-listFolded="false" data-order="random" data-preload="none"></div><link rel="stylesheet" href="https://cdn.bootcss.com/aplayer/1.10.1/APlayer.min.css"><script src="https://cdn.bootcss.com/aplayer/1.10.1/APlayer.min.js"></script><script src="https://cdn.jsdelivr.net/npm/meting@1.2.0/dist/Meting.min.js"></script><script src="https://cdn.jsdelivr.net/npm/pjax/pjax.min.js"></script><script>let pjaxSelectors = ["head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"]

var pjax = new Pjax({
  elements: 'a:not([target="_blank"])',
  selectors: pjaxSelectors,
  cacheBust: false,
  analytics: false,
  scrollRestoration: false
})

document.addEventListener('pjax:send', function () {

  // removeEventListener scroll 
  window.tocScrollFn && window.removeEventListener('scroll', window.tocScrollFn)
  window.scrollCollect && window.removeEventListener('scroll', scrollCollect)

  document.getElementById('rightside').style.cssText = "opacity: ''; transform: ''"
  
  if (window.aplayers) {
    for (let i = 0; i < window.aplayers.length; i++) {
      if (!window.aplayers[i].options.fixed) {
        window.aplayers[i].destroy()
      }
    }
  }

  typeof typed === 'object' && typed.destroy()

  //reset readmode
  const $bodyClassList = document.body.classList
  $bodyClassList.contains('read-mode') && $bodyClassList.remove('read-mode')

  typeof disqusjs === 'object' && disqusjs.destroy()
})

document.addEventListener('pjax:complete', function () {
  window.refreshFn()

  document.querySelectorAll('script[data-pjax]').forEach(item => {
    const newScript = document.createElement('script')
    const content = item.text || item.textContent || item.innerHTML || ""
    Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
    newScript.appendChild(document.createTextNode(content))
    item.parentNode.replaceChild(newScript, item)
  })

  GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()

  typeof chatBtnFn === 'function' && chatBtnFn()
  typeof panguInit === 'function' && panguInit()

  // google analytics
  typeof gtag === 'function' && gtag('config', '', {'page_path': window.location.pathname});

  // baidu analytics
  typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]);

  typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting()

  // prismjs
  typeof Prism === 'object' && Prism.highlightAll()
})

document.addEventListener('pjax:error', (e) => {
  if (e.request.status === 404) {
    pjax.loadUrl('/404.html')
  }
})</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div><script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":100,"height":200},"mobile":{"show":true},"rect":{"opacity":0.5},"log":false});</script></body></html>